import axios from 'axios';

// 创建axios实例
const service = axios.create({
    baseURL: import.meta.env.VITE_BASE_URL_API,
    timeout: 5000 // 请求超时时间
});

// 请求拦截器
service.interceptors.request.use(
    config => {
        // 可以在这里添加请求头等信息
        config.headers['Authorization'] = 'Token LpkA-3_yoT5erKM6h6BQiShrGUZMPVNM38Vn4rU1AChd8VdIiaXXPi3bsugKZkWuS6upjnJ5XshQ9QTyX_hxZA==';
        // config.headers['Accept'] = 'application/csv';
        // config.headers['Content-Type'] = 'application/vnd.flux';
        // config.headers['Accept-Encoding'] = 'gzip';
        
        return config;
    },
    error => {
        // 请求错误处理
        console.log(error); // for debug
        Promise.reject(error);
    }
);

// 响应拦截器
service.interceptors.response.use(
    response => {
        // 对响应数据做处理，例如只返回data部分
        const data = response.data;
        const code = response.status;
        // 如果返回的状态码为200，说明成功，可以直接返回数据
        if (code === 200) {
            return data;
        } else {
            // 其他状态码都当作错误处理
            // 可以在这里对不同的错误码进行不同处理
            return Promise.reject({
                message: res.message || 'Error',
                status: code
            });
        }
    },
    error => {
        // 对响应错误做处理
        console.log('err' + error); // for debug
        return Promise.reject(error);
    }
);

export default service;
